;;;Change attribute's thickness (attributes and text with thickness other than zero may
;;;be hidden by solids, 3dfaces, circles or any other surface upon hidden line removal).
;;;
;;;	Author:
;;;		Henry C. Francis
;;;		425 N. Ashe St.
;;;		Southern Pines, NC 28387
;;;
;;;	http://www.paracadd.com
;;;	All rights reserved.
;;;
;;;	Copyright:  3-16-2001
;;;	   Edited:  3-16-2001
(defun c:atthk ()
  (setq modcnt 0)
  (setq batname (strcase (ustr 1 "Block name for new attribute thickness? " (if batname batname "") nil)))
  (setq newatthk (ureal 1 "" (strcat "New attribute thickness for all " batname " attributes? ") (if newatthk newatthk 0.0)))
  (setq bmss (ssget "x" (list
                          (cons -4 "<and")
                            (cons 0 "INSERT")
                            (cons 2 batname)
                          (cons -4 "and>")
                        )
             )
  )
  (setq bmcnt (1- (sslength bmss)))
  (while (>= bmcnt 0)
    (setq bment (entget (ssname bmss bmcnt)))
    (while (/= (cdr(assoc 0 bment)) "SEQEND")
      (if (eq (cdr (assoc 0 bment)) "ATTRIB")
        (IF (assoc 39 bment)
          (progn
            (setq newent (subst (cons 39 newatthk)(assoc 39 bment) bment))
            (if
              (entmod newent)
              (setq modcnt (1+ modcnt))
            )
          )
          (progn
            (setq newent (append bment (list (cons 39 newatthk))))
            (if
              (entmod newent)
              (setq modcnt (1+ modcnt))
            )
          )
        )
      )
      (setq bment (entget (entnext (cdr(assoc -1 bment)))))
    )
    (setq bmcnt (1- bmcnt))
  )
  (princ (strcat "\nThickness set to " (rtos newatthk 2 2) " for " (itoa modcnt) " attributes in " (itoa (sslength bmss)) " " batname " blocks."))
  (princ)
)